10c5b353de5ac91bac86e73ff55762a9ae316fa2,java/src/main/java/net/razorvine/serpent/Parser.java,Parser,parseComplex,#SeekableStringReader#,421
Before Change
} catch (NumberFormatException x) {
throw new ParseException("invalid float format", x);
}
sr.rewind(1); // rewind the +/-
double imaginarypart = parseImaginaryPart(sr);
if(sr.read()!=')')
throw new ParseException("expected ) to end a complex number");
After Change
{
numberstr = sr.readUntil("+-");
}
sr.rewind(1); // rewind the +/-
// because we're a bit more cautious here with reading chars than in the float parser,
// it can be that the parser now stopped directly after the 'e' in a number like "3.14e+20".